<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>bonobo-shlib-factory</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="Libbonobo Reference Manual">
<link rel="up" href="factories.html" title="Objects, Factories, Reference Counting">
<link rel="prev" href="libbonobo-bonobo-generic-factory.html" title="BonoboGenericFactory">
<link rel="next" href="refcounting.html" title="Reference Counting">
<meta name="generator" content="GTK-Doc V1.15.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="libbonobo-bonobo-generic-factory.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="factories.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Libbonobo Reference Manual</th>
<td><a accesskey="n" href="refcounting.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#libbonobo-bonobo-shlib-factory.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#libbonobo-bonobo-shlib-factory.description" class="shortcut">Description</a>
                   | 
                  <a href="#libbonobo-bonobo-shlib-factory.object-hierarchy" class="shortcut">Object Hierarchy</a>
</td></tr>
</table>
<div class="refentry">
<a name="libbonobo-bonobo-shlib-factory"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="libbonobo-bonobo-shlib-factory.top_of_page"></a>bonobo-shlib-factory</span></h2>
<p>bonobo-shlib-factory</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="libbonobo-bonobo-shlib-factory.synopsis"></a><h2>Synopsis</h2>
<a name="BonoboShlibFactory"></a><pre class="synopsis">                    <a class="link" href="libbonobo-bonobo-shlib-factory.html#BonoboShlibFactory-struct" title="BonoboShlibFactory">BonoboShlibFactory</a>;
                    <a class="link" href="libbonobo-bonobo-shlib-factory.html#BonoboShlibFactoryClass" title="BonoboShlibFactoryClass">BonoboShlibFactoryClass</a>;
<a class="link" href="libbonobo-bonobo-shlib-factory.html#BonoboShlibFactory"><span class="returnvalue">BonoboShlibFactory</span></a> * <a class="link" href="libbonobo-bonobo-shlib-factory.html#bonobo-shlib-factory-construct" title="bonobo_shlib_factory_construct ()">bonobo_shlib_factory_construct</a>     (<em class="parameter"><code><a class="link" href="libbonobo-bonobo-shlib-factory.html#BonoboShlibFactory"><span class="type">BonoboShlibFactory</span></a> *factory</code></em>,
                                                         <em class="parameter"><code>const <span class="type">char</span> *act_iid</code></em>,
                                                         <em class="parameter"><code><span class="type">PortableServer_POA</span> poa</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> act_impl_ptr</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *closure</code></em>);
<a class="link" href="libbonobo-bonobo-shlib-factory.html#BonoboShlibFactory"><span class="returnvalue">BonoboShlibFactory</span></a> * <a class="link" href="libbonobo-bonobo-shlib-factory.html#bonobo-shlib-factory-new" title="bonobo_shlib_factory_new ()">bonobo_shlib_factory_new</a>           (<em class="parameter"><code>const <span class="type">char</span> *component_id</code></em>,
                                                         <em class="parameter"><code><span class="type">PortableServer_POA</span> poa</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> act_impl_ptr</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libbonobo-bonobo-generic-factory.html#BonoboFactoryCallback" title="BonoboFactoryCallback ()"><span class="type">BonoboFactoryCallback</span></a> factory_cb</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
<a class="link" href="libbonobo-bonobo-shlib-factory.html#BonoboShlibFactory"><span class="returnvalue">BonoboShlibFactory</span></a> * <a class="link" href="libbonobo-bonobo-shlib-factory.html#bonobo-shlib-factory-new-closure" title="bonobo_shlib_factory_new_closure ()">bonobo_shlib_factory_new_closure</a>   (<em class="parameter"><code>const <span class="type">char</span> *act_iid</code></em>,
                                                         <em class="parameter"><code><span class="type">PortableServer_POA</span> poa</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> act_impl_ptr</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *factory_closure</code></em>);
<span class="returnvalue">Bonobo_Unknown</span>      <a class="link" href="libbonobo-bonobo-shlib-factory.html#bonobo-shlib-factory-std" title="bonobo_shlib_factory_std ()">bonobo_shlib_factory_std</a>            (<em class="parameter"><code>const <span class="type">char</span> *component_id</code></em>,
                                                         <em class="parameter"><code><span class="type">PortableServer_POA</span> poa</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> act_impl_ptr</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libbonobo-bonobo-generic-factory.html#BonoboFactoryCallback" title="BonoboFactoryCallback ()"><span class="type">BonoboFactoryCallback</span></a> factory_cb</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                         <em class="parameter"><code><span class="type">CORBA_Environment</span> *ev</code></em>);
#define             <a class="link" href="libbonobo-bonobo-shlib-factory.html#BONOBO-OAF-SHLIB-FACTORY:CAPS" title="BONOBO_OAF_SHLIB_FACTORY()">BONOBO_OAF_SHLIB_FACTORY</a>            (oafiid,
                                                         descr,
                                                         fn,
                                                         data)
#define             <a class="link" href="libbonobo-bonobo-shlib-factory.html#BONOBO-OAF-SHLIB-FACTORY-MULTI:CAPS" title="BONOBO_OAF_SHLIB_FACTORY_MULTI()">BONOBO_OAF_SHLIB_FACTORY_MULTI</a>      (oafiid,
                                                         descr,
                                                         fn,
                                                         data)
#define             <a class="link" href="libbonobo-bonobo-shlib-factory.html#BONOBO-ACTIVATION-SHLIB-FACTORY:CAPS" title="BONOBO_ACTIVATION_SHLIB_FACTORY()">BONOBO_ACTIVATION_SHLIB_FACTORY</a>     (oafiid,
                                                         descr,
                                                         fn,
                                                         data)
</pre>
</div>
<div class="refsect1">
<a name="libbonobo-bonobo-shlib-factory.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
   +----<a class="link" href="libbonobo-bonobo-object.html#BonoboObject">BonoboObject</a>
         +----BonoboGenericFactory
               +----BonoboShlibFactory
</pre>
</div>
<div class="refsect1">
<a name="libbonobo-bonobo-shlib-factory.description"></a><h2>Description</h2>
<p>
</p>
</div>
<div class="refsect1">
<a name="libbonobo-bonobo-shlib-factory.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="BonoboShlibFactory-struct"></a><h3>BonoboShlibFactory</h3>
<pre class="programlisting">typedef struct _BonoboShlibFactory BonoboShlibFactory;</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="BonoboShlibFactoryClass"></a><h3>BonoboShlibFactoryClass</h3>
<pre class="programlisting">typedef struct {
	BonoboGenericFactoryClass parent_class;
} BonoboShlibFactoryClass;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="bonobo-shlib-factory-construct"></a><h3>bonobo_shlib_factory_construct ()</h3>
<pre class="programlisting"><a class="link" href="libbonobo-bonobo-shlib-factory.html#BonoboShlibFactory"><span class="returnvalue">BonoboShlibFactory</span></a> * bonobo_shlib_factory_construct     (<em class="parameter"><code><a class="link" href="libbonobo-bonobo-shlib-factory.html#BonoboShlibFactory"><span class="type">BonoboShlibFactory</span></a> *factory</code></em>,
                                                         <em class="parameter"><code>const <span class="type">char</span> *act_iid</code></em>,
                                                         <em class="parameter"><code><span class="type">PortableServer_POA</span> poa</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> act_impl_ptr</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *closure</code></em>);</pre>
<p>
Initializes <em class="parameter"><code>c_factory</code></em> with the supplied data.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
<td>The object to be initialized.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>act_iid</code></em> :</span></p></td>
<td>The GOAD id that the new factory will implement.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>poa</code></em> :</span></p></td>
<td>the poa.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>act_impl_ptr</code></em> :</span></p></td>
<td>Activation shlib handle
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td>The closure used to create new GnomeShlib object instances.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> The initialized BonoboShlibFactory object.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="bonobo-shlib-factory-new"></a><h3>bonobo_shlib_factory_new ()</h3>
<pre class="programlisting"><a class="link" href="libbonobo-bonobo-shlib-factory.html#BonoboShlibFactory"><span class="returnvalue">BonoboShlibFactory</span></a> * bonobo_shlib_factory_new           (<em class="parameter"><code>const <span class="type">char</span> *component_id</code></em>,
                                                         <em class="parameter"><code><span class="type">PortableServer_POA</span> poa</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> act_impl_ptr</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libbonobo-bonobo-generic-factory.html#BonoboFactoryCallback" title="BonoboFactoryCallback ()"><span class="type">BonoboFactoryCallback</span></a> factory_cb</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
This is a helper routine that simplifies the creation of factory
objects for GNOME objects.  The <em class="parameter"><code>factory</code></em> function will be
invoked by the CORBA server when a request arrives to create a new
instance of an object supporting the Bonobo::Shlib interface.
The factory callback routine is passed the <em class="parameter"><code>data</code></em> pointer to provide
the creation function with some state information.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>component_id</code></em> :</span></p></td>
<td>The GOAD id that this factory implements
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>poa</code></em> :</span></p></td>
<td>the poa.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>act_impl_ptr</code></em> :</span></p></td>
<td>Activation shlib handle
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>factory_cb</code></em> :</span></p></td>
<td>A callback which is used to create new BonoboObject instances.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>The closure data to be passed to the <em class="parameter"><code>factory</code></em> callback routine.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> A BonoboShlibFactory object that has an activated
Bonobo::ShlibFactory object that has registered with the GNOME
name server.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="bonobo-shlib-factory-new-closure"></a><h3>bonobo_shlib_factory_new_closure ()</h3>
<pre class="programlisting"><a class="link" href="libbonobo-bonobo-shlib-factory.html#BonoboShlibFactory"><span class="returnvalue">BonoboShlibFactory</span></a> * bonobo_shlib_factory_new_closure   (<em class="parameter"><code>const <span class="type">char</span> *act_iid</code></em>,
                                                         <em class="parameter"><code><span class="type">PortableServer_POA</span> poa</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> act_impl_ptr</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *factory_closure</code></em>);</pre>
<p>
This is a helper routine that simplifies the creation of factory
objects for GNOME objects.  The <em class="parameter"><code>factory_closure</code></em> closure will be
invoked by the CORBA server when a request arrives to create a new
instance of an object supporting the Bonobo::Shlib interface.
The factory callback routine is passed the <em class="parameter"><code>data</code></em> pointer to provide
the creation function with some state information.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>act_iid</code></em> :</span></p></td>
<td>The GOAD id that this factory implements
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>poa</code></em> :</span></p></td>
<td>the poa.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>act_impl_ptr</code></em> :</span></p></td>
<td>Activation shlib handle
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>factory_closure</code></em> :</span></p></td>
<td>A closure which is used to create new BonoboObject instances.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> A BonoboShlibFactory object that has an activated
Bonobo::ShlibFactory object that has registered with the GNOME
name server.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="bonobo-shlib-factory-std"></a><h3>bonobo_shlib_factory_std ()</h3>
<pre class="programlisting"><span class="returnvalue">Bonobo_Unknown</span>      bonobo_shlib_factory_std            (<em class="parameter"><code>const <span class="type">char</span> *component_id</code></em>,
                                                         <em class="parameter"><code><span class="type">PortableServer_POA</span> poa</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> act_impl_ptr</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libbonobo-bonobo-generic-factory.html#BonoboFactoryCallback" title="BonoboFactoryCallback ()"><span class="type">BonoboFactoryCallback</span></a> factory_cb</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                         <em class="parameter"><code><span class="type">CORBA_Environment</span> *ev</code></em>);</pre>
<p>
A Generic std shlib routine so we don't stick a load of code
inside a public macro.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> 0 on success, 1 on failure.
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="BONOBO-OAF-SHLIB-FACTORY:CAPS"></a><h3>BONOBO_OAF_SHLIB_FACTORY()</h3>
<pre class="programlisting">#define             BONOBO_OAF_SHLIB_FACTORY(oafiid, descr, fn, data)</pre>
<p>
Deprecated.  See <a class="link" href="libbonobo-bonobo-shlib-factory.html#BONOBO-ACTIVATION-SHLIB-FACTORY:CAPS" title="BONOBO_ACTIVATION_SHLIB_FACTORY()"><code class="function">BONOBO_ACTIVATION_SHLIB_FACTORY()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>oafiid</code></em> :</span></p></td>
<td>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>descr</code></em> :</span></p></td>
<td>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fn</code></em> :</span></p></td>
<td>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="BONOBO-OAF-SHLIB-FACTORY-MULTI:CAPS"></a><h3>BONOBO_OAF_SHLIB_FACTORY_MULTI()</h3>
<pre class="programlisting">#define             BONOBO_OAF_SHLIB_FACTORY_MULTI(oafiid, descr, fn, data)</pre>
<p>
Deprecated.  See <a class="link" href="libbonobo-bonobo-shlib-factory.html#BONOBO-ACTIVATION-SHLIB-FACTORY:CAPS" title="BONOBO_ACTIVATION_SHLIB_FACTORY()"><code class="function">BONOBO_ACTIVATION_SHLIB_FACTORY()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>oafiid</code></em> :</span></p></td>
<td>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>descr</code></em> :</span></p></td>
<td>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fn</code></em> :</span></p></td>
<td>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="BONOBO-ACTIVATION-SHLIB-FACTORY:CAPS"></a><h3>BONOBO_ACTIVATION_SHLIB_FACTORY()</h3>
<pre class="programlisting">#define             BONOBO_ACTIVATION_SHLIB_FACTORY(oafiid, descr, fn, data)</pre>
<p>
  Macro that includes all boiler-plate code necessary to create an shlib
  type factory.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>oafiid</code></em> :</span></p></td>
<td>The factory's OAFIID
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>descr</code></em> :</span></p></td>
<td>Description of the factory
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fn</code></em> :</span></p></td>
<td>Function (<a class="link" href="libbonobo-bonobo-generic-factory.html#BonoboFactoryCallback" title="BonoboFactoryCallback ()"><span class="type">BonoboFactoryCallback</span></a>) responsible for intantiating components
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>Additional data to be passed to the callback
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.15.1</div>
</body>
</html>